package org.jeecg.modules.degression.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.degression.pojo.*;

import java.util.List;

/**
 * 成本管理Service接口
 */
public interface IDegressionService {

    /**
     * 查询成本项列表
     *
     * @param page         分页器
     * @param category     类别
     * @param businessType 业务leixing
     */
    IPage<MlccPriceSystemPinglei> listPrice(Page<MlccPriceSystemPinglei> page, Integer category, Integer businessType);

    /**
     * 删除不需要的成本项
     *
     * @param id
     */
    int delPriceC(String id);

    /**
     * 查询定制项下的小模块
     *
     * @param categoryid 类别ID
     * @param code       小模块编码
     */
    MlccModuleSmallTemplate selectSmallMotule(Integer categoryid, String code);

    /**
     * 查询定制项下的小模块 (下拉模式)
     *
     * @param categoryid 类别ID
     */
    List<MlccModuleSmallTemplate> selectSmallMotule2(Integer categoryid);

    /**
     * 获取定制项详情
     *
     * @param id 类别ID
     */
    MlccCategoryInfo categoryDetail(Integer id);

    /**
     * 保存定制成本项
     *
     * @param systemID     上级主键ID
     * @param systemCateID 成本管理的类别ID
     * @param categoryID   类别ID
     * @param categoryName 类别名称
     * @param price        价格
     */
    int savePricesavePrice(String systemID, String systemCateID, String categoryID, String categoryName, String price, String costCode);

    /**
     * 获取保存的返修项
     *
     * @param page     分页器
     * @param systemID 上级ID
     * @param typeID   具体的成本类型ID
     */
    IPage<MlccPriceSystemCostRecord> listChengben(Page<MlccPriceSystemCostRecord> page, String systemID, String typeID);

    /**
     * 删除成本项
     *
     * @param id 成本项id
     */
    int delChengben(String id);

    /**
     * 更新成本价
     *
     * @param id    成本数据ID
     * @param price 价格
     */
    int updatePrice(String id, String price);

    /**
     * 加急项列表  查询方式变更
     */
    List<MlccAddPriceInfo> listUrgent(String category);

    /**
     * 获取系统加急项详情
     *
     * @param id 数据ID
     */
    MlccAddPriceInfo urgentDetail(String id);

    /**
     * 保存系统加急成本项(公用)
     *
     * @param costID       关联的参数的数据ID，如绣字的ID，绣字高度的id
     * @param typeID       类型：0定制项，1定制项下的参数，2绣字工艺，3撞色，4绣字部位，5绣字高度，6返修参数，7加急项
     * @param systemID     上级主键ID
     * @param systemCateID 成本管理的类别ID
     * @param categoryName 加急项名称
     * @param price        价格
     */
    int saveurgent(String costID, Integer typeID, String systemID, String systemCateID, String categoryName, String price, String costCode);

    /**
     * 获取所有返修项
     *
     * @param categoryID 类别ID
     */
    List<MlccCategoryFanxiuInfo> listFanxiuSize(String categoryID);

    /**
     * 获取返修参数详情
     *
     * @param id 单休参数数据主键ID
     */
    MlccCategoryFanxiuInfo fanxiuDetail(String id);

    /**
     * 查询撞色工艺 （不用）
     *
     * @param code       撞色编码
     * @param categoryID 类别ID
     */
    MlccContrastcolorInfo contColor(String code, String categoryID);

    /**
     * 查询撞色工艺 （下拉模式）
     *
     * @param categoryID 类别ID
     */
    List<MlccContrastcolorInfo> contColor2(String categoryID);

    /**
     * 查询绣字高度
     *
     * @param categoryID 类别ID
     */
    List<MlccEmbdtypePrice> listXiuziHeight(String categoryID);

    /**
     * 获取休息详情
     *
     * @param id 绣字高度ID
     */
    MlccEmbdtypePrice xiuxiDetail(String id);

    /**
     * 查询绣字位置集合
     *
     * @param categoryID 类别ID
     */
    List<MlccCategoryLocaltion> listXiuziHandler(String categoryID, String code);

    /**
     * 绣字位置详情
     *
     * @param id 绣字位置ID
     */
    MlccCategoryLocaltion locationDetail(String id);
}
